#Boa:Dialog:ComprasPagos

import wx
import consultasBD
import utiles
from decimal import Decimal

def create(parent):
    return ComprasPagos(parent)

[wxID_COMPRASPAGOS, wxID_COMPRASPAGOSBUTTON1, wxID_COMPRASPAGOSBUTTON2, 
 wxID_COMPRASPAGOSBUTTON3, wxID_COMPRASPAGOSCHECKBOX1, 
 wxID_COMPRASPAGOSCHECKBOX2, wxID_COMPRASPAGOSCHECKBOX3, 
 wxID_COMPRASPAGOSCHOICE1, wxID_COMPRASPAGOSCHOICE2, 
 wxID_COMPRASPAGOSCOMBOBOX1, wxID_COMPRASPAGOSDATEPICKERCTRL1, 
 wxID_COMPRASPAGOSDATEPICKERCTRL2, wxID_COMPRASPAGOSPANEL1, 
 wxID_COMPRASPAGOSSTATICTEXT1, wxID_COMPRASPAGOSSTATICTEXT10, 
 wxID_COMPRASPAGOSSTATICTEXT2, wxID_COMPRASPAGOSSTATICTEXT3, 
 wxID_COMPRASPAGOSSTATICTEXT4, wxID_COMPRASPAGOSSTATICTEXT5, 
 wxID_COMPRASPAGOSSTATICTEXT6, wxID_COMPRASPAGOSSTATICTEXT7, 
 wxID_COMPRASPAGOSSTATICTEXT8, wxID_COMPRASPAGOSSTATICTEXT9, 
 wxID_COMPRASPAGOSTEXTCTRL1, wxID_COMPRASPAGOSTEXTCTRL2, 
 wxID_COMPRASPAGOSTEXTCTRL3, wxID_COMPRASPAGOSTEXTCTRL4, 
 wxID_COMPRASPAGOSTEXTCTRL5, wxID_COMPRASPAGOSTEXTCTRL6, 
] = [wx.NewId() for _init_ctrls in range(29)]

class ComprasPagos(wx.Dialog):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Dialog.__init__(self, id=wxID_COMPRASPAGOS, name='ComprasPagos',
              parent=prnt, pos=wx.Point(433, 154), size=wx.Size(391, 361),
              style=wx.DEFAULT_DIALOG_STYLE, title='Pagos a Proveedores')
        self.SetClientSize(wx.Size(383, 334))

        self.panel1 = wx.Panel(id=wxID_COMPRASPAGOSPANEL1, name='panel1',
              parent=self, pos=wx.Point(0, 0), size=wx.Size(392, 376),
              style=wx.TAB_TRAVERSAL)

        self.staticText1 = wx.StaticText(id=wxID_COMPRASPAGOSSTATICTEXT1,
              label='Temporada', name='staticText1', parent=self.panel1,
              pos=wx.Point(16, 8), size=wx.Size(54, 13), style=0)

        self.comboBox1 = wx.ComboBox(choices=[], id=wxID_COMPRASPAGOSCOMBOBOX1,
              name='comboBox1', parent=self.panel1, pos=wx.Point(16, 24),
              size=wx.Size(100, 21), style=0, value='')
        self.comboBox1.SetLabel('')
        self.comboBox1.Enable(False)

        self.staticText2 = wx.StaticText(id=wxID_COMPRASPAGOSSTATICTEXT2,
              label='Proveedor', name='staticText2', parent=self.panel1,
              pos=wx.Point(120, 8), size=wx.Size(50, 13), style=0)

        self.textCtrl1 = wx.TextCtrl(id=wxID_COMPRASPAGOSTEXTCTRL1,
              name='textCtrl1', parent=self.panel1, pos=wx.Point(120, 24),
              size=wx.Size(64, 21), style=0, value='')
        self.textCtrl1.SetEditable(False)

        self.textCtrl2 = wx.TextCtrl(id=wxID_COMPRASPAGOSTEXTCTRL2,
              name='textCtrl2', parent=self.panel1, pos=wx.Point(184, 24),
              size=wx.Size(184, 21), style=0, value='')
        self.textCtrl2.SetEditable(False)

        self.button3 = wx.Button(id=wxID_COMPRASPAGOSBUTTON3, label='Buscar',
              name='button3', parent=self.panel1, pos=wx.Point(296, 56),
              size=wx.Size(75, 23), style=0)
        self.button3.Show(False)
        self.button3.Bind(wx.EVT_BUTTON, self.OnBuscar,
              id=wxID_COMPRASPAGOSBUTTON3)

        self.staticText3 = wx.StaticText(id=wxID_COMPRASPAGOSSTATICTEXT3,
              label='Fecha', name='staticText3', parent=self.panel1,
              pos=wx.Point(16, 56), size=wx.Size(29, 13), style=0)

        self.textCtrl3 = wx.TextCtrl(id=wxID_COMPRASPAGOSTEXTCTRL3,
              name='textCtrl3', parent=self.panel1, pos=wx.Point(16, 72),
              size=wx.Size(72, 21), style=0, value='')
        self.textCtrl3.SetEditable(False)

        self.staticText5 = wx.StaticText(id=wxID_COMPRASPAGOSSTATICTEXT5,
              label='Importe', name='staticText5', parent=self.panel1,
              pos=wx.Point(184, 152), size=wx.Size(38, 13), style=0)

        self.staticText4 = wx.StaticText(id=wxID_COMPRASPAGOSSTATICTEXT4,
              label='Tipo de Valor', name='staticText4', parent=self.panel1,
              pos=wx.Point(16, 152), size=wx.Size(62, 13), style=0)

        self.textCtrl5 = wx.TextCtrl(id=wxID_COMPRASPAGOSTEXTCTRL5,
              name='textCtrl5', parent=self.panel1, pos=wx.Point(16, 128),
              size=wx.Size(352, 21), style=0, value='')

        self.choice1 = wx.Choice(choices=[], id=wxID_COMPRASPAGOSCHOICE1,
              name='choice1', parent=self.panel1, pos=wx.Point(16, 168),
              size=wx.Size(168, 21), style=0)
        self.choice1.Bind(wx.EVT_CHOICE, self.OnTipoValor,
              id=wxID_COMPRASPAGOSCHOICE1)

        self.textCtrl4 = wx.TextCtrl(id=wxID_COMPRASPAGOSTEXTCTRL4,
              name='textCtrl4', parent=self.panel1, pos=wx.Point(184, 168),
              size=wx.Size(72, 21), style=wx.TE_RIGHT | wx.TE_LEFT,
              value='0.00')

        self.choice2 = wx.Choice(choices=[], id=wxID_COMPRASPAGOSCHOICE2,
              name='choice2', parent=self.panel1, pos=wx.Point(16, 216),
              size=wx.Size(328, 21), style=0)

        self.staticText6 = wx.StaticText(id=wxID_COMPRASPAGOSSTATICTEXT6,
              label='Observaciones', name='staticText6', parent=self.panel1,
              pos=wx.Point(16, 112), size=wx.Size(71, 13), style=0)

        self.staticText7 = wx.StaticText(id=wxID_COMPRASPAGOSSTATICTEXT7,
              label='Cheque Numero', name='staticText7', parent=self.panel1,
              pos=wx.Point(16, 240), size=wx.Size(77, 13), style=0)

        self.textCtrl6 = wx.TextCtrl(id=wxID_COMPRASPAGOSTEXTCTRL6,
              name='textCtrl6', parent=self.panel1, pos=wx.Point(16, 256),
              size=wx.Size(104, 21), style=0, value='')
        self.textCtrl6.Enable(False)

        self.staticText8 = wx.StaticText(id=wxID_COMPRASPAGOSSTATICTEXT8,
              label='Banco', name='staticText8', parent=self.panel1,
              pos=wx.Point(16, 200), size=wx.Size(29, 13), style=0)

        self.staticText9 = wx.StaticText(id=wxID_COMPRASPAGOSSTATICTEXT9,
              label='Fecha Emision', name='staticText9', parent=self.panel1,
              pos=wx.Point(184, 240), size=wx.Size(67, 13), style=0)

        self.datePickerCtrl1 = wx.DatePickerCtrl(id=wxID_COMPRASPAGOSDATEPICKERCTRL1,
              name='datePickerCtrl1', parent=self.panel1, pos=wx.Point(184,
              256), size=wx.Size(80, 21),
              style=wx.DP_DROPDOWN | wx.DP_SHOWCENTURY)
        self.datePickerCtrl1.Enable(False)

        self.staticText10 = wx.StaticText(id=wxID_COMPRASPAGOSSTATICTEXT10,
              label='Fecha cobro', name='staticText10', parent=self.panel1,
              pos=wx.Point(264, 240), size=wx.Size(59, 13), style=0)

        self.datePickerCtrl2 = wx.DatePickerCtrl(id=wxID_COMPRASPAGOSDATEPICKERCTRL2,
              name='datePickerCtrl2', parent=self.panel1, pos=wx.Point(264,
              256), size=wx.Size(80, 21),
              style=wx.DP_DROPDOWN | wx.DP_SHOWCENTURY)
        self.datePickerCtrl2.Enable(False)

        self.button1 = wx.Button(id=wxID_COMPRASPAGOSBUTTON1, label='Guardar',
              name='button1', parent=self.panel1, pos=wx.Point(16, 304),
              size=wx.Size(75, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnGuardar,
              id=wxID_COMPRASPAGOSBUTTON1)

        self.button2 = wx.Button(id=wxID_COMPRASPAGOSBUTTON2, label='Salir',
              name='button2', parent=self.panel1, pos=wx.Point(293, 304),
              size=wx.Size(75, 23), style=0)
        self.button2.Bind(wx.EVT_BUTTON, self.OnSalir,
              id=wxID_COMPRASPAGOSBUTTON2)

        self.checkBox1 = wx.CheckBox(id=wxID_COMPRASPAGOSCHECKBOX1,
              label='Actualiza el Servidor', name='checkBox1',
              parent=self.panel1, pos=wx.Point(120, 72), size=wx.Size(160, 13),
              style=0)
        self.checkBox1.SetValue(False)
        self.checkBox1.Bind(wx.EVT_CHECKBOX, self.OnCheck1,
              id=wxID_COMPRASPAGOSCHECKBOX1)

        self.checkBox2 = wx.CheckBox(id=wxID_COMPRASPAGOSCHECKBOX2,
              label='NO Actualiza el servidor', name='checkBox2',
              parent=self.panel1, pos=wx.Point(120, 88), size=wx.Size(144, 13),
              style=0)
        self.checkBox2.SetValue(False)
        self.checkBox2.Bind(wx.EVT_CHECKBOX, self.OnCheck2,
              id=wxID_COMPRASPAGOSCHECKBOX2)

        self.checkBox3 = wx.CheckBox(id=wxID_COMPRASPAGOSCHECKBOX3,
              label='Pago a NO Proveedores', name='checkBox3',
              parent=self.panel1, pos=wx.Point(120, 48), size=wx.Size(144, 13),
              style=0)
        self.checkBox3.SetValue(False)
        self.checkBox3.Bind(wx.EVT_CHECKBOX, self.OnChequeExterno,
              id=wxID_COMPRASPAGOSCHECKBOX3)

    def __init__(self, parent, temporada="", idproveedor="", nombre="", lista={}):
        self._init_ctrls(parent)
        self.llenarComboTemporada()
        self.llenarComboBanco()
        self.llenarChoiceFormaPago()
        self.checkBox1.SetValue(False)
        self.checkBox2.SetValue(False)
        if temporada!="":
            for i,item in enumerate(self.comboBox1.GetItems()):
                if temporada == item:
                    self.comboBox1.SetSelection(i)
                    break
        fecha = utiles.obtenerFecha("d-m-Y")
        self.textCtrl3.SetLabel(fecha)
        if idproveedor=="":
            self.inicializaSinProveedor()
        else:
            self.textCtrl1.SetLabel(idproveedor)
            self.textCtrl2.SetLabel(nombre)
            self.checkBox1.SetFocus()
            if lista != {}:
                self.cargaDatos(lista)
                
    def cargaDatos(self,lista):
        pass
            
    def inicializaSinProveedor(self, habilita=True):
        if habilita:
            self.textCtrl1.SetLabel("")
            self.textCtrl2.SetLabel("")
        self.textCtrl1.SetEditable(habilita)
        self.textCtrl2.SetEditable(habilita)
        self.comboBox1.Enable(habilita)
        self.button3.Show(habilita)
        self.textCtrl3.Enable(not habilita)
        self.checkBox1.Enable(not habilita)
        self.checkBox2.Enable(not habilita)
        self.textCtrl4.Enable(not habilita)
        self.textCtrl5.Enable(not habilita)
        self.choice1.Enable(not habilita)
        self.button1.Enable(not habilita)
        self.comboBox1.SetFocus()
            
    def llenarComboTemporada(self):
        anio = int(utiles.obtenerFecha("Y-m-d")[:4])
        mes = int(utiles.obtenerFecha("Y-m-d")[5:7])
        dia = int(utiles.obtenerFecha("Y-m-d")[-2:])
        anioanterior = anio -1
        anioactual = anio
        aniosiguiente = anio + 1
        self.comboBox1.Append("INVIERNO"+str(anioanterior))
        self.comboBox1.Append("VERANO"+str(anioanterior))
        self.comboBox1.Append("INVIERNO"+str(anioactual))
        self.comboBox1.Append("VERANO"+str(anioactual))
        self.comboBox1.Append("INVIERNO"+str(aniosiguiente))
        self.comboBox1.Append("VERANO"+str(aniosiguiente))
        self.comboBox1.Append("NO PROVEEDORES")
        self.comboBox1.SetEditable(False)

    def llenarComboBanco(self):
        sql = "SELECT nombre,codbanco FROM chq_bancos WHERE 1 ORDER BY nombre"
        resultados = consultasBD.ordenCrudaDict(sql)
        for item in resultados:
            aux = item["nombre"]+" / "+str(item["codbanco"])
            self.choice2.Append(aux)
        
    def llenarChoiceFormaPago(self):
        sql = "SELECT nombre,descripcion FROM valores WHERE proveedores='1' ORDER BY nombre"
        resultados = consultasBD.ordenCrudaDict(sql)
        for item in resultados:
            aux = item["descripcion"]+" / "+item["nombre"]
            self.choice1.Append(aux)

    def OnTipoValor(self, event):
        tipovalor = self.choice1.GetLabel()
        descripcion,nombre = tipovalor.split(" / ")
        if nombre=="CH":
            self.choice2.Enable(True)
            self.textCtrl6.Enable(True)
            self.datePickerCtrl1.Enable(True)
            self.datePickerCtrl2.Enable(True)
        else:
            self.choice2.Enable(False)
            self.textCtrl6.Enable(False)
            self.datePickerCtrl1.Enable(False)
            self.datePickerCtrl2.Enable(False)

    def OnSalir(self, event):
        self.Close()

    def OnBuscar(self, event):
        if self.textCtrl1.GetValue() != "":
            consultaSQL = "SELECT idproveedor,nombre FROM proveedor WHERE idproveedor = '"+self.textCtrl1.GetValue()+"' "
            resultado = consultasBD.ordenCrudaDict(consultaSQL)
            if resultado != ():
                proveedor = resultado[0]
                self.textCtrl1.SetLabel(proveedor["idproveedor"])
                self.textCtrl2.SetLabel(proveedor["nombre"])
                self.button3.SetLabel("Aceptar")
                if self.comboBox1.GetLabel()=="":
                    utiles.mensaje(None,"Debe especificar temporada")
                    self.comboBox1.SetFocus()
                    return
                self.inicializaSinProveedor(False)
                self.checkBox1.SetFocus()
                return
            self.textCtrl1.SetLabel("")
            self.textCtrl2.SetLabel("")
            self.textCtrl1.SetFocus()
            return
        if self.textCtrl2.GetValue() != "":
            consultaSQL = "SELECT idproveedor,nombre FROM proveedor WHERE nombre LIKE '%"+self.textCtrl2.GetValue()+"%' "
            resultado = consultasBD.ordenCrudaDict(consultaSQL)
            if resultado != () and len(resultado)==1:
                proveedor = resultado[0]
                self.textCtrl1.SetLabel(proveedor["idproveedor"])
                self.textCtrl2.SetLabel(proveedor["nombre"])
                self.button3.SetLabel("Aceptar")
                if self.comboBox1.GetLabel()=="":
                    utiles.mensaje(None,"Debe especificar temporada")
                    self.comboBox1.SetFocus()
                    return
                self.inicializaSinProveedor(False)
                self.checkBox1.SetFocus()
                return
        import BuscaProveedor2
        ventana = BuscaProveedor2.Dialog1(self,self.textCtrl2.GetLabel())
        try:
            ventana.ShowModal()
            eleccion = ventana.getSeleccion()
        finally:
            ventana.Destroy()
        if eleccion.split(" / ") != ['']:
            self.textCtrl1.SetValue(eleccion.split(" / ")[1])
            self.textCtrl2.SetValue(eleccion.split(" / ")[0])
            self.button3.SetLabel("Aceptar")
            if self.comboBox1.GetLabel()=="":
                utiles.mensaje(None,"Debe especificar temporada")
                self.comboBox1.SetFocus()
                return
            self.inicializaSinProveedor(False)
            self.checkBox1.SetFocus()
        else:
            self.button3.SetFocus()

    def OnCheck1(self, event):
        if self.checkBox1.GetValue() and self.checkBox2.GetValue():
            self.checkBox1.SetValue(False)

    def OnCheck2(self, event):
        if self.checkBox1.GetValue() and self.checkBox2.GetValue():
            self.checkBox2.SetValue(False)

    def verificaGuardar(self):
        try:
            valor = Decimal(self.textCtrl4.GetLabel()).quantize(Decimal("0.10"))
        except:
            utiles.mensaje(None,"Debe especificar un Importe numerico")
            self.textCtrl4.SetLabel("0.00")
            self.textCtrl4.SetFocus()
            return False
        if not self.checkBox1.GetValue() and not self.checkBox2.GetValue():
            utiles.mensaje(None,"Indique si debe Actualizarse el Servidor")
            self.checkBox1.SetFocus()
            return False
        if valor <= Decimal("0.00") or valor <= Decimal("0"):
            utiles.mensaje(None,"El importe debe ser mayor a 0")
            self.textCtrl4.SetLabel("0.00")
            self.textCtrl4.SetFocus()
            return False
        if self.textCtrl5.GetLabel()=="":
            utiles.mensaje(None,"Debe escribir un texto en Observaciones")
            self.textCtrl5.SetLabel("")
            self.textCtrl5.SetFocus()
            return False
        if self.choice1.GetLabel()=="":
            utiles.mensaje(None,"Debe indicar la forma de pago")
            self.choice1.SetFocus()
            return False
        tipovalor = self.choice1.GetLabel()
        descripcion,nombre = tipovalor.split(" / ")
        if nombre=="CH":
            if self.choice2.GetLabel()=="":
                utiles.mensaje(None,"Debe indicar un banco")
                self.choice1.SetFocus()
                return False
            if self.textCtrl6.GetLabel()=="":
                utiles.mensaje(None,"Falta el numero de cheque")
                self.textCtrl6.SetFocus()
                return False
            fecha1 = self.datePickerCtrl1.GetLabel().replace("/","-")
            fecha2 = self.datePickerCtrl2.GetLabel().replace("/","-")
            fecha1 = utiles.invertirFecha(fecha1).replace("-","")
            fecha2 = utiles.invertirFecha(fecha2).replace("-","")
            fecha1 = float(fecha1)
            fecha2 = float(fecha2)
            if fecha2<fecha1:
                texto = "La Fecha Emision no puede ser\n"
                texto+= "posterior a la Fecha Cobro"
                utiles.mensaje(None,texto)
                self.datePickerCtrl1.SetFocus()
                return False
        return True

    def verificaCheque(self,codbanco,nrocheque):
        sql = "SELECT * FROM chq_chequeras WHERE codbanco='"+codbanco+"' "
        resultados = consultasBD.ordenCrudaDict(sql)
        for item in resultados:
            chequeinicio = int(item["chequeinicial"])
            chequefin = int(item["chequefinal"])
            if int(nrocheque)>=chequeinicio and int(nrocheque)<=chequefin:
                return True
        return False

    def verificaChequeEmitido(self,codbanco,nrocheque):
        r1 = "SELECT nrocheque FROM chq_emitidos "
        r2 = "WHERE codbanco='"+codbanco+"' AND nrocheque='"+nrocheque+"' "
        sql = r1+r2
        resultados = consultasBD.ordenCrudaDict(sql)
        if len(resultados)!=0:
            return True
        return False

    def OnGuardar(self, event):
        if not self.verificaGuardar():
            return
        if self.textCtrl6.GetLabel()!="":
            nombre,codbanco = str(self.choice2.GetLabel()).split(" / ")
            if not self.verificaCheque(codbanco,self.textCtrl6.GetLabel()):
                utiles.mensaje(None,"Numero de cheque no pertenece\na chequeras para el banco indicado")
                self.textCtrl6.SetFocus()
                return 
            if self.verificaChequeEmitido(codbanco,self.textCtrl6.GetLabel()):
                utiles.mensaje(None,"Nro. de Cheque utilizado en otro pago")
                self.textCtrl6.SetFocus()
                return 
        idproveedor = self.textCtrl1.GetLabel()

        r1 = "SELECT idregistro FROM proveedor "
        r2 = "WHERE idproveedor='"+idproveedor+"' "
        sql = r1+r2
        resultado = consultasBD.ordenCrudaResultDict(sql)
        registro = int(resultado["idregistro"])+1
        
        tipovalor = self.choice1.GetLabel()
        descripcion,nombre = tipovalor.split(" / ")
        idoperacion = "PAGO "+nombre+" "+descripcion+" "
        idoperacion+= self.textCtrl6.GetLabel()
        fecha = utiles.obtenerFecha("Y-m-d h:m:s")
        idproveedor = self.textCtrl1.GetLabel()
        monto1 = "0.00"
        monto2 = "0.00"
        if self.checkBox1.GetValue():
            monto1 = self.textCtrl4.GetLabel()
            importe = monto1
            idforma1o2 = '1'
        else:
            monto2 = self.textCtrl4.GetLabel()
            importe = monto2
            idforma1o2 = '2'
        nrofactura = "varios"
        cantproductos = "0"
        observaciones = self.textCtrl5.GetLabel()
        operador = ""
        temporada = self.comboBox1.GetLabel()
        idregistro = registro
        # FactA 0 - FactC 1 - Rto1 2 - Rto2 3 - NtaCredito 4 - NtaDebito 5 
        # Otros2 6 - Otros1 7 - Pag1 8 - Pag2 9 - Credito2 10
        tipodoc = "9"

        try:
            r1 = "INSERT INTO comprasaldos(idoperacion,fecha,idproveedor,monto1,"
            r2 = "            monto2,nrofactura,cantproductos,idforma1o2,"
            r3 = "            observaciones,operador,temporada,idregistro,tipodoc) "
            r4 = "VALUES ('"+idoperacion+"','"+fecha+"','"+idproveedor+"','"
            r5 = monto1+"','"+monto2+"','"+nrofactura+"','"+cantproductos+"','"
            r6 = idforma1o2+"','"+observaciones+"','"+operador+"','"+temporada+"','"
            r7 = str(idregistro)+"','"+tipodoc+"') "
            sql = r1+r2+r3+r4+r5+r6+r7
            id = consultasBD.executaSinCommit(None, sql)
        except:
            r1 = "INSERT INTO comprasaldos(idoperacion,fecha,idproveedor,monto1,"
            r2 = "            monto2,nrofactura,cantproductos,idforma1o2,"
            r3 = "            observaciones,operador,temporada,idregistro) "
            r4 = "VALUES ('"+idoperacion+"','"+fecha+"','"+idproveedor+"','"
            r5 = monto1+"','"+monto2+"','"+nrofactura+"','"+cantproductos+"','"
            r6 = idforma1o2+"','"+observaciones+"','"+operador+"','"+temporada+"','"
            r7 = str(idregistro)+"') "
            sql = r1+r2+r3+r4+r5+r6+r7
            id = consultasBD.executaSinCommit(None, sql)
        
        r1 = "UPDATE proveedor SET idregistro=idregistro+1 "
        r2 = "WHERE idproveedor='%s'" % (idproveedor)
        sqlupdate = r1+r2
        id = consultasBD.executaSinCommit(None,sqlupdate)
        
        tipovalor = self.choice1.GetLabel()
        descripcion,nombre = tipovalor.split(" / ")
        if nombre=="CH":
            #guardo datos del cheque
            nombre,codbanco = str(self.choice2.GetLabel()).split(" / ")
            nrocheque = self.textCtrl6.GetLabel()
            fechaemision = self.datePickerCtrl1.GetLabel().replace("/","-")
            fechaemision = utiles.invertirFecha(fechaemision)
            fechapago = self.datePickerCtrl2.GetLabel().replace("/","-")
            fechapago = utiles.invertirFecha(fechapago)
            importe = self.textCtrl4.GetLabel()
            destinatario = self.textCtrl2.GetLabel()+" / "+self.textCtrl1.GetLabel()
            observaciones = self.textCtrl5.GetLabel()
            acreditado = "0" #0 - no 1 - si
            
            r1 = "chq_emitidos(codbanco,nrocheque,fechaemision,fechapago,"
            r2 = "importe,destinatario,observaciones,acreditado)"
            tablaSQL = r1+r2
            r1 = "('"+codbanco+"','"+nrocheque+"','"+fechaemision+"','"
            r2 = fechapago+"','"+importe+"','"+destinatario+"','"
            r3 = observaciones+"','"+acreditado+"')"
            camposSQL = r1+r2+r3
            id = consultasBD.executaInsertSQL(self,tablaSQL,camposSQL)

        idcompras = str(idregistro)
        nrofactura = "0"
        #guardar pago de compras
        r1 = "INSERT INTO comprastienepagos(idcompra,nrofactura,fecha,"
        r2 = "            idproveedor,idformapagos,descrivalor,monto,"
        r3 = "            chequenro,nrorecibo) VALUES "
        r4 = "('"+idcompras+"','"+nrofactura+"','"+fecha+"','"+idproveedor+"','"
        r5 = nombre+"','"+descripcion+"','"+importe+"','"
        r6 = self.textCtrl6.GetLabel()+"','0')"
        sql = r1+r2+r3+r4+r5+r6
        id = consultasBD.executaSinCommit(None,sql)
        
        utiles.mensaje(None,"Valor guardado")
        self.OnSalir(None)

    def OnChequeExterno(self, event):
        if self.checkBox3.GetValue():
            self.textCtrl1.SetLabel("9000013")
            self.comboBox1.SetSelection(6)
            self.OnBuscar(None)
            self.checkBox2.SetValue(True)
            self.textCtrl5.SetFocus()
            self.checkBox3.Enable(False)
            posicion = -1
            for i,item in enumerate(self.choice1.GetItems()):
                if "CH" in item:
                    posicion = i
                    break
            self.choice1.SetSelection(posicion)
            self.OnTipoValor(None)
